自由研究 2020-2021


概要

C#のTask、JSのPromise、AndroidJavaのThread投入パターン(正式名称わかんない上に俺の知識は古い)、KotlinのCoroutine、Swiftの来世くらいでのアットasyncHandler、goの goキーワード、Pythonの、、


みたいな、いろんな言語の非同期やら分散処理やらを自由研究する予定。


これは最終的には、Unity C#上でネイティブレイヤを使ってStartCoroutineのスレッド版みたいなものを実装する時に、どんな理想があるのか、どんな理想を見ることができるのか、知識として使いたい。



理想

なるべくC#という言語との接点を最小限にしたいという思いがある。これはなんていうか、C#のasync構文やIAwaitableまわりに利点よりも損点を多く感じているため。(ネイティブでやった方がryすぎる

わりかし簡単にいうと、「言語基礎ではなくマルチスレッドをスレッドプールという形で扱っている」あたりがコアな気はしていて、GCDみたいな逃げ場や簡便性を失いすぎている。

あとデカい。


そのへんを明確に言語化するためにも、勉強しような~っていう感じ。


StartCoroutineは結構理想的で、メインスレッドで動作するという特性を保ったまま、

IEnumerator<T>っていう、いわゆるジェネレータを使ってコードブロックを分離できる「だけ」なので、

あのくらいの言語機能の利用度が理想な気はしている。